The present invention relates to data synchronization, and more specifically, to synchronizing data between or among multiple devices in a peer-to-peer environment.
Handheld devices and portable computers are becoming increasingly more powerful and functional devices. Many handheld devices are now multifunction devices with multiple device roles including: personal digital assistant (PDA), cellular phone, portable media player, voice recorder, video recorder, global positioning system (GPS), camera, and electronic file storage. Similarly, portable computers now have increased functionality and mobility. Because of these improvements in handheld devices and portable computers, data is commonly shared among multiple handheld devices and portable computers, with multiple devices accessing and modifying shared data files.
Additionally, advances in wireless Internet coverage and in wireless network capabilities made a broad range of data (such as electronic files, image files, audio files and video files) accessible to mobile communication devices, laptop computers, and other types of portable communication systems. Network improvements have also allowed electronic data to be accessed and modified from virtually any location. This combination of improved wireless network access and improved portable device functionality has caused users increasingly to access and modify electronic data from multiple, often widely separated, locations using multiple different portable devices.
Because multiple devices can access and modify the same data, the different data modifications should be synchronized to ensure the each device accesses the most recent version of the data. For example, a user may use one portable device to edit an electronic document in one location, and later use a different portable device to access the same electronic document from a different location. Synchronization ensures that the electronic document accessed by the second portable device includes the modifications made using the first portable device. Synchronization is also used where a multiple users can access and modify the same data from multiple devices in various locations, requiring the data to be synchronized among the multiple devices.
Existing methods for data synchronization require the data modifications to be transmitted to a central server. The central server then transmits the modifications to other devices. To synchronize data, the devices must remain connected to the centralized server. When the centralized server is unavailable, modifications to data stored on each device cannot be transmitted to other devices. Thus, data cannot be synchronized between multiple devices when the server is unavailable.
Therefore, there is a need for a method to synchronizing data between or among peer devices without requiring a centralized server to update the data.